package framework.util.jdkExt;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 吴宇亮 on 2019/10/31 0031 上午 10:17
 */
public class _StringUtil {

    /**
     * 对str进行分割，分割完后进行trim处理，并且允许传入多个分割符，经常用于前端允许同时用中文逗号和英文逗号进行分割，然后后台解析。示例：<br/>
     * 如果str为1,2,3/4/5，spearators传入,和/，那么就会返回Lists.of("1","2","3/4/5") <br/>
     * 如果str为1,2,3/4/5，spearators传入/和,，那么就会返回Lists.of("1,2,3","4","5") <br/>
     *
     * @param str 待分割的字符串
     * @param spearators 分割符，越在前面的优先度越高
     * @return
     */
    public static List<String> split(String str, String... spearators){
        if(null == spearators || 0 == spearators.length){
            throw new IllegalArgumentException("分隔符不能为空");
        }

        //找出用哪个分割符进行分割
        String spearator = null;
        for (String _spearator : spearators) {
            if(-1 != str.indexOf(_spearator)){
                spearator = _spearator;
                break;
            }
        }

        //分割str
        List<String> list = new ArrayList<>();
        if(null == spearator || "".equals(spearator)){
            list.add(str);
        }else{
            for (String item : str.split(spearator)) {
                list.add(item.trim());
            }
        }
        return list;
    }

    /**
     * 判断str1是否大于str2. 按字符串的每一个字符的ASCII码进行比较. 如果字符串相同，则按字符串的长度长的为大
     * <code>
     *    System.out.println(isGreatThan("a", "b")); //false
     *    System.out.println(isGreatThan("cc", "ccc")); //false
     *    System.out.println(isGreatThan("v150", "v100")); //true
     * </code>
     *
     * @return 如果str1 > str2，返回true；否则返回false
     */
    public static boolean isGreatThan(String str1, String str2){
        return str1.compareTo(str2) > 0 ? true : false;
    }

}
